﻿namespace ScrumLite.Data
{
    using System;
    using System.Collections.Generic;
    using System.Collections.ObjectModel;

    public interface IProjectStore
    {
        void Add(Project project);
        void Update(Project project);
        Project[] GetProjects();
        Project GetProject(Guid projectId);
        Project GetProjectByName(string projectName);
        Dictionary<ProjectPerson, List<Role>> GetPeople(Guid projectId);
        void AddPerson(ProjectPerson person);
        void AddPersonRole(ProjectPersonRole personRole);
        void RemovePerson(Guid projectId, string personId);
        Dictionary<string, string[]> CheckProjectCompliance(Guid projectId);
        Dictionary<string, Collection<ComplianceChecker>> GetComplianceCheckerProperties();
    }
}
